package at.fhooe.swa.client.domain;

public interface ISensor
{
	/**
	 * Returns the label that will be displayed in the GUI.
	 * The label is the name of the sensor.
	 * @return the label of the sensor for displaying it
	 */
	public String getDisplayLabel();
	
	/**
	 * Returns the unit of the sensor data.
	 * @return the unit
	 */
	public String getUnit();
	
	/**
	 * Returns the key of the sensor. The key corresponds to the key used 
	 * in the JSon file sent from the server. 
	 * 
	 * @return the sensor's identifier name
	 */
	public String getKey();
	
	/**
	 * The current value of the sensor. This value is updated by 
	 * {@link #setCurrentValue(Object)} once new data from the 
	 * server arrives.
	 * @return the current value
	 */
	public Object getCurrentValue();
	
	/**
	 * Updates the current value, this is used once the server send new data.
	 * @param currentValue the new value
	 */
	public void setCurrentValue(Object currentValue);
}
